首先來聽首歌吧!
雖然我知道聽搖滾的人不多,但還是想介紹個覺得不錯的好歌給大家聽聽 ~ 如果不喜歡搖滾的就慎入喔 XD
今天終於來到 Rails Guide 的另一篇文章了
在最一開始,文章中就提到了 REST 這個奇怪的字,他是什麼呢?
他的全名是 Resource Representational State Transfer,它的概念是把網址都當作一種資源,而對這些資源使用不同的動作會有不同的結果
沒有使用 REST 設計概念的網頁,其實網址命名就是隨人所好,像是下面這樣
商品列表資訊 GET /getAllItems
新增商品 GET /addItem
看第一號商品 GET /getItem/1
那如果使用 REST 方式設計的網站呢,通常會長得像這樣
商品列表資訊 GET /items
新增商品 POST /items
看第一號商品 GET /items/1
至於這些動作分別該對這個網址做什麼,RFC有大致規範,因此其實是可以預期的到會得到怎樣的結果
在 Rails 中 Controller 的命名也有慣例存在:==最後一個單字要是複數==
比方說,想要做一個叫做 qoo 的 controller,他的 class 應該叫做 QoosController
,如果是兩個以上的單字組成的,就是最後一個單字要是複數,ex. SiteAdminsController
當然也是可以不甩他的命名慣例,但最後要找地方改成你自己的設定就很麻煩~
在 Rails 中的每個 controller 都繼承自 ApplicationController
那他又繼承自 ActionController::Base
,在這裡面已經內建很多預設給 controller 使用的方法
接下來稍微講一下 controller 的運作.如果今天我的 controller 長這樣:
class QoosController < ApplicationController
def new
end
end
那今天有個人進到 qoos/new 的頁面時,Rails 就會做出一個 QoosController
的實體並呼叫這個實體的 new 方法,那這個網頁會正常運作嗎? 這要取決於你的 app/views/qoos 資料夾有沒有一個 new.html 開頭的檔案,還記得這裡有個慣例是他會去找 views 裡面跟 controller 同名的資料夾嗎?忘記的人請去看一下前幾天的文章 ~
今天就先寫到這裡囉!明天見~
本文章同步分享於 http://anthonychao.site/